草庐IT

java String hashcode缓存机制

全部标签

java - PDFBox:禁用字体缓存或更改其位置

当我调用PDField.setValue设置表单字段的值时,我得到以下堆栈跟踪:FileSystemFontProvider.saveDiskCache(349)|Couldnotwritetofontcachejava.io.FileNotFoundException:/.pdfbox.cache(Permissiondenied)atjava.io.FileOutputStream.open(NativeMethod)atjava.io.FileOutputStream.(FileOutputStream.java:194)atjava.io.FileOutputStream.(F

java - Hibernate 二级查询缓存不工作急切获取

在NHibernateProfiler中,我观察到当我对关联使用预取时,在HQL查询中使用“左连接获取”或在标准查询中使用.SetFetchMode()时,查询不再缓存在查询缓存中。事实上,据我所知,只有非常基本的查询被缓存。如果有人可以让我深入了解哪些查询被缓存,哪些不被缓存,我将标记为答案。如果有任何不同,我正在使用Memcached...。对于查询密集型系统,L2缓存是否有更好的选择?我发现这相当具有挑战性-如果我不使用预先加载,我会遇到N+1问题(但使用缓存),如果我使用预先加载,我会从数据库中获取所有实体,但没有缓存。似乎有一条很粗的分界线,两种策略都有性能改进,但两种策略都

java - 在 Apache Felix 中禁用缓存

我正在尝试按照此线程(http://osdir.com/ml/dev-felix-apache/2009-05/msg00051.html)中的说明禁用felix中的文件系统捆绑缓存。我在网上找不到具体的例子。有人可以帮我解决这个问题吗?这真的有效吗?提前致谢。克劳斯。 最佳答案 禁用包缓存是不可能的,这是框架所要求的。您可以将其配置为在每次启动时进行清理(org.osgi.framework.storage.clean),或者您可以尝试使用您的URL中引用的方法来创建您自己的包缓存。除了对框架代码本身进行黑客攻击之外,这些是您唯一

java - 对于堆上 Java 缓存来说,多少数据太多了?我应该什么时候开始考虑堆外缓存?

多少数据对于像ehcache这样的堆上缓存来说太多了?我得到了一个24GB内存的服务器。我可能会开始投入2-4GB用于缓存,但最终可能投入20GB左右用于缓存。什么时候我应该担心堆上缓存的GC会花费太长时间?顺便问一下,DirectMemory是唯一可用的开源堆外缓存吗?准备好迎接黄金时段了吗? 最佳答案 取决于您的JVM,尤其是使用的GC。尤其是较旧的GC并不能真正处理非常大的堆,但人们正在努力解决这个问题。例如,Azul系统销售具有数百GB堆的硬件而没有出现问题(即gc在ms内暂停而不是半分钟),这要归功于他们的specialG

java - 在保存到文件之前将大量定期获取的文本存储到缓存中是个好主意吗?

因此,我正在尝试将来自消息传递网络上的用户的消息写入文件。我正在尝试使用良好的Java实践和适当的文件IO技术来构建这个程序。目前,我的程序识别出有人发布了一条消息,获取该消息并立即将其写入文件。创建文件对象,创建writer对象,附加消息,然后关闭文件。如果传入的消息不多,这似乎是个好习惯,但如果有快速的对话流,这似乎很慢并且需要很多不必要的操作,因为文件将立即再次打开。然后我想如果我只是让文件保持打开状态并在消息到达文件时写入消息,然后定期关闭它会怎么样。这是好的做法吗?让文件长时间打开?例如一个小时后或写入一定量的数据后?现在,我想我应该获取消息,将它们存储在“缓存”(如字符串数

java - 如何使用回调机制?

我必须实现一个信用卡应用程序,我必须在其中处理一个信用卡帐户。credit()、debit()、pinChange()等操作。但我的问题是在两种情况下我必须使用“JAVACALLBACK”机制来通知用户:引脚变化当余额低于5000时。如何使用这些通知的回调?这里更关注CALLBACKS的使用..publicinterfaceCallback{publicvoidonPinChange();publicvoidonLowBalance();}importjava.util.Scanner;publicclassCreditCardimplementsCallback{Callbackca

java - 如何在jersey-client java中实现重试机制

我正在使用jersey-client进行一些httprestapi调用。现在我想重试失败请求。说如果返回错误代码不是200那么我想再试几次。如何使用Jersey客户端做到这一点 最佳答案 来晚了,但是您可以使用几种不同的机制。同步方法看起来像这样:publicResponseexecWithBackoff(Callablei){ExponentialBackOffbackoff=newExponentialBackOff.Builder().build();longdelay=0;Responseresponse;do{try{Th

java - 使用 Spring 缓存处理 Java 8 Optional

考虑一个可以插入和检索对象并使用Spring缓存抽象的服务类,我如何以返回Optional的方式注释方法?classMyServiceImplimplementsMyService{privatestaticfinalStringCACHE_NAME="itemCache";@Override@Cacheable(CACHE_NAME)publicOptionalfindById(Longid){//accesstherepositorytoretrievetheitem}@Override@CachePut(cacheNames=CACHE_NAME,key="#item.id")p

java - 如何在不更改注释的情况下禁用 Hibernate 中某些特定实体的二级缓存

我在我的应用程序中使用Hibernate二级缓存,出于某些业务原因我不能再更改实体注释。在我的项目中,除了从Hibernate更改数据库外,还存在其他不通过Hibernate的nativeSQL。因此,从原生SQL更新数据库后,Hibernate二级缓存数据可能会过时。这就是为什么我要禁用某些实体的二级缓存(以编程方式或除更改注释以外的其他方式)。提前致谢! 最佳答案 警告:正如JensSchauder所指出的,不可能通过设置maxElementsInMemory="0"将Ehcache配置为在内存中存储0个元素,因为它实际上会导致

java - Oracle JDBC 驱动程序语句缓存与 BoneCP 语句缓存?

我正在使用OracleJDBC驱动程序并评估BoneCP。两者都实现了语句缓存。我在问自己是否应该使用其中一个来进行语句缓存。你怎么看?每种方式的优缺点是什么? 最佳答案 作为BoneCP的作者,我可以填写我的部分:如果您忘记正确关闭语句,使用池缓存可以为您提供堆栈跟踪。如果您使用的是hibernate/springjdbc模板或其他一些托管连接,这无关紧要,因为它总是会为您关闭。语句缓存与每个连接相关联,因此如果您有100个连接并且每次都继续执行相同的语句,则每个连接都需要一段时间才能填满它的缓存。如果DB支持它,驱动程序可能会进